import java.rmi.RemoteException;



/**
 * Represente un Festivalier qui est un Thread
 * @author camara
 *
 */
public class Festivalier extends Thread{

	/**
	 * le site de depart du festivalier
	 */
	ASite siteDepart;
	
	/**
	 * variable indiquant si un festivalier à payer un billet en ligne
	 */
	boolean aBillet;
	
	Billetterie billetterie ;

	private boolean reservationEnLigne;
	/**
	 * 
	 * @param site Le site du depart du festivalier
	 * @param nom un nom pour distinguer le Thread
	 */
	public Festivalier(ASite site, String nom , Billetterie billetterie){
		super(nom);
		this.siteDepart = site;
		this.billetterie = billetterie ;
	}
	/**
	 * Action du festivalier
	 */
	//le festivalier se rend sur son site de depart et demande d'aller au festival
	@Override
	public void run() {
		//se rend au festivale
		siteDepart.allerAuFestival(this);
		if(reservationEnLigne)
			try {
				payerBilletEnLigne();
			} catch (RemoteException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}
	
	
	/**
	 * Permet au festivalier de reserver un billet en ligne
	 * @throws RemoteException 
	 */
	public void payerBilletEnLigne() throws RemoteException{
		System.out.println(getName() + " Reservation en ligne");
		this.billetterie.reservation(1);
		System.out.println(getName() + " Reservation OK");
	}
	public boolean isReservationEnLigne() {
		return reservationEnLigne;
	}
	public void setReservationEnLigne(boolean reservationEnLigne) {
		this.reservationEnLigne = reservationEnLigne;
	} 
			
}
